package com.icinfo.cloud.provider.punish.api.client.ucase.casemain;

import com.icinfo.cloud.provider.punish.ucase.casemain.dto.DocumentKeyInfoRequest;
import com.icinfo.cloud.provider.punish.ucase.casemain.vo.CaseDocumentKeyInfoVo;
import com.icinfo.cloud.provider.punish.ucase.casemain.vo.CaseDocumentRecordVo;
import com.icinfo.framework.common.web.Result;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * 描述：文书记录客户端接口
 *
 * @author xiangyuyu
 * @date 2022/6/27 17:14
 */
@FeignClient(value = "${unified-punish-case-provider.namespace:}unified-punish-case-provider", contextId = "CaseDocumentRecordClient")
public interface CaseDocumentRecordClient {

    /**
     * 【V1.0.0】描述：根据唯一标识查询文书记录信息
     *
     * @param id 唯一标识
     * @return {@link Result<CaseDocumentRecordVo >} 文书记录信息
     * @author xiangyuyu
     * @date 2022-02-16 16:02
     */
    @PostMapping("/punish/ucase/case/main/document/record/getCaseDocumentRecordInfo")
    @ApiOperation(value = "【V1.0.0】描述：根据唯一标识查询文书记录信息", httpMethod = "POST")
    Result<CaseDocumentRecordVo> getCaseDocumentRecordInfo(@RequestParam(value = "id") String id);



    /**
     * 【V2.0.0】描述：根据特定信息查询文书关键信息【所有文书通用】
     *
     * @param request {@link DocumentKeyInfoRequest}
     * @return {@link Result<CaseDocumentKeyInfoVo >} 文书关键信息
     * @author xiangyuyu
     * @date 2022-02-16 16:02
     */
    @PostMapping("/punish/ucase/case/main/document/record/getCaseDocumentRecordInfo/getDocumentKeyInfoBySpecialCondition")
    @ApiOperation(value = "【V2.0.0】描述：根据特定信息查询文书关键信息【所有文书通用】", httpMethod = "POST")
    Result<CaseDocumentKeyInfoVo> getDocumentKeyInfoBySpecialCondition(@Validated @RequestBody DocumentKeyInfoRequest request);
}
